
#api-nav {
  position: fixed;
  left: 0;
  top: 80px;
  bottom: 60px;
  transition: width 100ms;

  ul {
    margin: 0;
    list-style: none;
    padding: 0;
  }

  .header {
    padding: 5px 10px;
    font-size: large;
    font-weight: bold;
    box-sizing: border-box;
    user-select: none;
    border-left: 3px solid;

    small {
      font-size: smaller;
      color: #1b78ce;
      cursor: pointer;

      &:hover {
        color: red;
      }
    }
  }
}

#app.nav-collapsed {
  #api-nav {
    width: auto;

    #api-nav-list {
      display: none;
    }

    .header {
      padding: 0;
      display: flex;
      justify-content: center;
      align-items: center;
      width: 24px;
      border: none;

      span {
        cursor: pointer;
        border-width: 1px 1px 1px 0;
        border-style: solid;
        padding: 5px;
        font-weight: normal;
        font-size: small;
        border-radius: 0 4px 4px 0;
      }

      small {
        display: none;
      }
    }
  }
}

#api-nav-list {
  position: relative;
  margin-left: 5px !important;
  height: 100%;
  width: 100%;
  overflow: auto;

  ul {
    margin-left: 15px;
    padding-left: 5px;
    border-left: 1px dotted;
  }

  li {
    padding: 0;
    margin: 0;
  }

  .module-name {
    font-size: larger;
    padding: 5px 0;
  }

  .route-name {
    padding: 2px 0;
    word-break: keep-all;
    white-space: nowrap;
  }

  a {
    text-decoration: none;
  }
}

#app:not(.nav-collapsed) {
  @media screen and (max-width: 1400px) {
    #api-nav {
      position: relative;
      display: block;
      width: auto;
      top: unset;
      bottom: unset;
      margin-left: 40px;
    }

    .scroll-proxy {
      margin-left: auto;
    }
  }

  @media screen and (min-width: 1400px) {
    #api-nav {
      display: block;
      width: 260px;
    }

    .scroll-proxy {
      margin-left: 20%;
    }
  }

  @media screen and (min-width: 1600px) {
    #api-nav {
      display: block;
      width: 380px;
    }

    .scroll-proxy {
      margin-left: 23%;
    }
  }

  @media screen and (min-width: 1900px) {
    #api-nav {
      display: block;
      width: 440px;
    }

    .scroll-proxy {
      margin-left: 27%;
    }
  }
}